package com.jy.modules.cims.data.dao;

import java.util.List;
import java.util.Map;

import com.jy.modules.cims.data.common.dto.TCMmCreditDetailDTO;
import com.jy.modules.cims.data.dto.CreditDetailDto;
import com.jy.modules.cims.data.dto.SearchCreditDetailDto;
import com.jy.platform.core.mybatis.MyBatisRepository;

@MyBatisRepository
public interface CreditDetailDao {

	/**
	 * @author zhuwenbin
	 * @description: 分页查询债权明细
	 * @date 2015-01-07 16:21:37
	 * @param searchParams
	 * @return
	 */
	public List<CreditDetailDto> searchCreditDetailByPaging(Map<String, Object> searchParams);

	/**
	 * @author zhoupeng
	 * @description: 债权明细查询 导出
	 * @date 2015-11-02 16:21:37
	 * @param searchParams
	 * @return
	 */
	public List<CreditDetailDto> searchTCMmCreditDetailExport(Map<String, Object> searchParams);

	/**
	 * @author zhuwenbin
	 * @description:
	 * @date 2015-01-07 16:21:37
	 * @param searchParams
	 * @return
	 */
	public List<CreditDetailDto> searchCreditDetailByIds(Map<String, Object> searchParams);

	/**
	 * @author zhuwenbin
	 * @description:查询更新债权价值的债权
	 * @date 2015-03-03 20:21:37
	 * @param searchParams
	 * @return
	 */
	public List<TCMmCreditDetailDTO> searchCreditForUpdateValue(Map<String, Object> searchParams);

	public List<TCMmCreditDetailDTO> searchCreditForUpdateValueNew(Map<String, Object> searchParams);

	/**
	 * @author zhuwenbin
	 * @description:查询更新债权价值的债权
	 * @date 2015-03-03 20:21:37
	 * @param searchParams
	 * @return
	 */
	public List<TCMmCreditDetailDTO> searchCreditForUpdateValueByPaging(Map<String, Object> searchParams);

	/**
	 * @author zhuwenbin
	 * @description: 更新对象债权状态
	 * @date 2015-2-04-下午2:13:47
	 * @param paramMap
	 */
	public void updateTCMmCreditDetailStatus(Map<String, Object> paramMap);
	
	/**
	 * @description: 更新
	 * @param paramMap
	 */
	public void updateTCMmCreditDetailBillDate(Map<String, Object> paramMap);

	/**
	 * 更新对象债权状态
	 * 
	 * @Title updateTCMmCreditDetailStatusByTransferId
	 * @Description TODO
	 * @param paramMap
	 *            void
	 * @author lizhiqiang
	 * @date 2016-2-23-下午8:33:35
	 * @update
	 * @throws
	 */
	public void updateTCMmCreditDetailStatusByTransferId(Map<String, Object> paramMap);

	/**
	 * 
	 * @Title batchUpdateTCMmCreditStatus
	 * @Description 批量修改债权状态
	 * @param ids
	 *            ，status
	 * @return List<TCMmCreditDetailDTO>
	 * @date 2015-2-04-下午2:13:47
	 * @update
	 * @throws
	 */
	public int batchUpdateTCMmCreditStatus(Map<String, Object> paramMap);

	/**
	 * @Description 修改债权当前价值
	 * @param paramMap
	 */
	public void updateCreditValueById(Map<String, Object> paramMap);

	/**
	 * @Description 修改债权当前价值
	 * @param paramMap
	 */
	public void updateCreditValueByTransferId(Map<String, Object> paramMap);

	/**
	 * @Description 修改债权当前价值
	 * @param paramMap
	 */
	public void updateCreditValueByCreditCode(Map<String, Object> paramMap);

	/**
	 * @author zhuwenbin
	 * @description: 更新对象债权明细
	 * @date 2015-03-04 16:21:37
	 * @param paramMap
	 */
	public void updateCreditDetail(Map<String, Object> paramMap);

	/**
	 * 查询债权额度表
	 * 
	 * @title: searchQuotaCreditForUpdateValueByPaging
	 * @author
	 * @description:
	 * @date 2015-4-9 上午9:55:56
	 * @param searchParams
	 * @return
	 * @throws
	 */
	public List<TCMmCreditDetailDTO> searchQuotaCreditForUpdateValueByPaging(Map<String, Object> searchParams);

	/**
	 * 查询债权额度表
	 * 
	 * @title: searchQuotaCreditForUpdateValue
	 * @author
	 * @description:
	 * @date 2015-4-9 上午9:38:13
	 * @param searchParams
	 * @return
	 * @throws
	 */
	public List<TCMmCreditDetailDTO> searchQuotaCreditForUpdateValueNew(Map<String, Object> searchParams);

	/**
	 * 更新债权额度明细 当前债权价值
	 * 
	 * @title: updateQuotaCreditValueByTransferId
	 * @author
	 * @description:
	 * @date 2015-4-9 上午9:38:31
	 * @param paramMap
	 * @throws
	 */
	public void updateQuotaCreditValueByTransferId(Map<String, Object> paramMap);

	public List searchCreditThisRepaySum(Map<String, Object> paramMap);

	public List searchQuotaCreditThisRepaySum(Map<String, Object> paramMap);

	public List searchCreditPreemptiveByPaging(Map<String, Object> paramMap);

	public List<TCMmCreditDetailDTO> searchCreditForPreemptive(Map<String, Object> searchParams);

	public void updatePreemptiveCreditValue(Map<String, Object> paramMap);

	/**
	 * @description 修改交互状态
	 * @param paramMap
	 */
	public void updateCreditDetailEachStatus(Map<String, Object> paramMap);
	
	/**
	 * @description updateCreditReceValue
	 * @author shengzhoutao
	 * @param creditDetailDtoList
	 */
	public void updateCreditReceValue(List<CreditDetailDto> creditDetailDtoList);
	
	/**
	 * @description updateCreditTransferValue
	 * @author shengzhoutao
	 * @param creditDetailDtoList
	 */
	public void updateCreditTransferValue(List<CreditDetailDto> creditDetailDtoList);
	
	/**
	 * @description updateLoanCreditValue
	 * @author shengzhoutao
	 * @param creditDetailDtoList
	 */
	public void updateLoanCreditValue(List<CreditDetailDto> creditDetailDtoList);
	
	/**
	 * @description updateQuotaCreditValue
	 * @author shengzhoutao
	 * @param creditDetailDtoList
	 */
	public void updateQuotaCreditValue(List<CreditDetailDto> creditDetailDtoList);
	
	
	/**
	 * @description updateCustinfobyCreditCode
	 * @author shengzhoutao
	 * @param creditDetailDtoList
	 */
	public void updateCustinfobyCreditCode(List<CreditDetailDto> creditDetailDtoList);
	/**
	 * 接口-查询债权列表
	 * @author zhangmi
	 * @date  2017年1月19日
	 * @param paramMap
	 * @return
	 */
	public List<SearchCreditDetailDto> searchCreditDetailBaseByPaging(Map<String, Object> paramMap);
}
